今天簡單講一下我覺得要做人工智慧相關研究的前置作業需要些什麼。
第一個最重要的就是資料的倉儲,做研究最重要的就是要有資料,所以也就要有足夠大的容量來儲存資料,尤其現在往往大量資料,所需要耗費的空間就更多了,而且可能還會不斷的收集新的資料,另外,除了儲存原始檔案外,建議還要有定時備份系統,避免突然機器壞掉或是誤刪等悲慘事件發生,而且在過程中可能還會有一些暫存檔,所以最後需要的容量可能是資料容量的三四倍以上。當然,可能原本就有資料庫,只是要做研究,那可以直接串接本來的資料庫,但是要設定好權限,例如只能讀取而無法寫入,最好確保有備份系統,研究過程中才會比較安全。
再來就是計算能力了,以往可能只能用中央處理器(Central Processing Unit,CPU),造成運算速度不夠快,所以在學習過程中,或者說資料的訓練過程中要耗時幾個月以上才可以得到一次結果,這是非常不利於發展的,如果發現結果不好要改進,可能又要再次花費幾個月,所以近年計算能力幾何式的成長是大大的幫助了人工智慧的發展,像是使用圖形處理器(Graphics Processing Unit,GPU)或者 Google 推出的張量處理器(Tensor Processing Unit,TPU)等等,都是為了可以加速電腦的學習速度。另外,產品的計算能力限制也是一件需要考慮的事情,像是邊緣計算(edge computing)就是在討論端點的設備計算能力不足,然而我們又需要即時或在短時間內得到答案,那就必須做一些修正,之後會介紹類似的技術。
程式能力當然是必備的要素,雖然現在有很多的套件出現,甚至有些人還做出圖像介面,但我認為這仍然是基本功,python 對於人工智慧有關套件的開發還是屬於比較大眾的語言,至少許多套件都會有對應的應用程式介面(Application Programming Interface,API)。好的程式能力會大大影響做研究的效率,例如在處理資料或者訓練模型的時候,不同的程式順序,雖然結果一樣,但可以讓時間少了一半以上,甚至更多。
數學能力就屬於比較進階的部分,如果要做人工智慧的基礎理論研究,那數學能力就是不可缺少的一部分了,最佳化、機率論、分析、線性代數是最基本的,不同的問題可能會涉及到不同的數學領域,更進階如幾何學、拓墣學等等,都有機會用到。
資料儲存空間跟計算能力屬於硬體層面,也就是要花錢的部分,如果是自己買的話,算下來一整套可以破百萬臺幣,然而覺得自己沒有那麼專業的話,或者資金沒有那麼充裕等其他因素,也可以考慮一些雲端計算等服務,像是 Google、微軟(Microsoft)、亞馬遜(Amazon)甚至臺灣的國網中心的臺灣衫 2 都有出對應的雲端服務(Cloud Computing),這可能就是靠流量或者計算時間來收費。而程式能力與數學能力就屬於軟實力了,平常可以自我培養,而且就是完全靠自己努力了。